// Tags:
#include <cstdio>

const int N = 1e6 + 5, mod = 1e9 + 7;
int n, cnt, pri[N], fac[N], tot[N];
bool vis[N];

int main() {
#ifndef ONLINE_JUDGE
#ifdef LOCAL
#ifdef CHECK
  freopen64("/tmp/CodeTmp/testdata.in", "r", stdin);
  freopen64("/tmp/CodeTmp/testdata.out", "w", stdout);
#else
  freopen64("testdata.in", "r", stdin);
  freopen64("testdata.out", "w", stdout);
#endif
#else
  freopen("P1445 [Violet]樱花.in", "r", stdin);
  freopen("P1445 [Violet]樱花.out", "w", stdout);
#endif
#endif

  scanf("%d", &n);
  for (int i = 2; i <= n; ++i) {
    if (!vis[i]) { pri[++cnt] = i, fac[i] = i; }
    for (int j = 1; j <= cnt && pri[j] * i <= n; ++j) {
      vis[i * pri[j]] = true;
      fac[i * pri[j]] = pri[j];
      if (i % pri[j] == 0) break;
    }
  }
  for (int i = 1, _i = 1; i <= n; _i = ++i) {
    while (_i != 1) {
      ++tot[fac[_i]];
      _i /= fac[_i];
    }
  }
  long long ans = 1;
  for (int i = 1; i <= n; ++i) {
    tot[i] <<= 1;
    ans *= tot[i] + 1;
    ans %= mod;
  }
  printf("%lld", ans);
  return 0;
}